package com.basker.pisces.core.sequence;

import com.basker.pisces.utils.SnowflakeIdUtils.SnowflakeIdGenerator;

/**
 * 雪花序列生成器,和UUID类似的是，它可以确保全局唯一，因此在生成序列的时候和具体的sequenceName无关，但是需要注意的是，在分布式环境下，每个进程的workerId
 *
 * @author hangwen
 */
public class SnowFlakeSequrenceGenerator implements ILongSequrenceGenerator {

    private SnowflakeIdGenerator generator;

    public SnowFlakeSequrenceGenerator(int workerId, int datacenterId) {
        generator = new SnowflakeIdGenerator(workerId, datacenterId);
    }

    @Override
    public long generate(String sequenceName) {
        return generator.nextId();
    }

}
